entity loads is

	port (
		entrada : in bit_vector(31 downto 0);
		saida : out bit_vector(31 downto 0);
		seletor : in bit_vector(1 downto 0)
	);
end loads;

architecture arc_loads of loads is

begin

	process (entrada, seletor)
		variable resultado : bit_vector(31 downto 0);
		
		begin
			if(seletor = "10") then  --lb
				resultado(7 downto 0) := entrada(7 downto 0);
				if(entrada(7) = '0') then
					resultado(31 downto 8) := "000000000000000000000000";			
				else
					resultado(31 downto 8) := "111111111111111111111111";
				end if;
			elsif(seletor = "01") then  --lh
				resultado(15 downto 0) := entrada(15 downto 0);
				if(entrada(15) = '0') then
					resultado(31 downto 16) := "0000000000000000";
				else
					resultado(31 downto 16) := "1111111111111111";
				end if;
			else
				resultado := entrada;
			end if;
			saida <= resultado;
	end process;
	
end arc_loads;


				


		
			